package com.yunduansing.core.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.yunduansing.core.commons.DbCommon;

/**
 * 通用dao
 * @author yunduansing
 *
 * @param <T>
 */
public interface BaseDao<T> {
	/**
	 * 新增
	 * @param model
	 * @return
	 */
	int add(T model);
	/**
	 * 修改
	 * @param model
	 * @return
	 */
	int update(T model);
	/**
	 * 根据主键批量删除
	 * @param keys
	 * @return
	 */
	int deleteByKeys(List<Object> keys);
	/**
	 * 根据主键获取model
	 * @param key
	 * @return
	 */
	T getByKey(Object key);
	/**
	 * 分页查询
	 * @param grid
	 * @param map
	 * @return
	 */
	List<T> pagination(@Param(value="grid") DbCommon.Grid grid,@Param(value="search") Object search);
	/**
	 * 分页查询总记录数
	 * @param map
	 * @return
	 */
	int pageCount(@Param(value="search") Object search);
}
